iT邦幫忙

2023 iThome 鐵人賽

DAY 20
0

今天來講一下要怎麼把昨天說到的內容實作到之前的專案中。

main.go

首先先打開main.go,在裡面把路徑加上去

package main

import (
	...
)

//	@title			Swagger Example API
//	@version		1.0
//	@description	This is a sample server celler server.
//	@termsOfService	http://swagger.io/terms/

...

func main() {
	r := gin.Default()

	c := controller.NewController()

	v1 := r.Group("/api/v1")
	{
		...
		googleCalendar := v1.Group("/googleCalendar")
		{
			googleCalendar.GET("/getEventList", c.GetGoogleCalendarEventList)
		}
		...
	}
}

這邊我加上的group是googleCalendar,並且用GET取得/getEventList這個路徑,後面用的是GetGoogleCalendarEventList這個function

再來就是要設定這個controller的內容

controller/googleCalendar.go

這邊先把code貼上來

package controller

import (
	"log"

	"github.com/gin-gonic/gin"
	"google.golang.org/api/calendar/v3"
	"google.golang.org/api/option"
)

// GetGoogleCalendarEventList godoc
//
//	@Summary		Get Google Calendar Event List
//	@Description	Get Google Calendar Event List
//	@Tags			googleCalendar
//	@Accept			json
//	@Produce		json
//	@Success		200		{array}		string "success"
//	@Failure		400		{string}	string			"fail"
//	@Router			/api/v1/googleCalendar/getEventList [get]
func (c *Controller) GetGoogleCalendarEventList(ctx *gin.Context) {
	calendarService, err := calendar.NewService(ctx, option.WithAPIKey("[secret key]"))
	if err != nil {
		panic(err)
	}
	eventList, err := calendarService.Events.List("[calendar id]").Do()
	if err != nil {
		panic(err)
	}
	for _, item := range eventList.Items {
		log.Println(item.Summary)
	}
}

首先跟前幾天一樣,先設定godoc的內容,把上面的commit打上去

主要就是要設定Router,這邊要設定的跟前面main.go裡面的內容一樣

再來寫下面的function

先用昨天的方法通過google calendar的認證,然後用Event.List取得該calendar id的內容

最後用一個for迴圈印出eventList的內容

eventList.Items,取得eventList中的內容,然後印出Summary就會拿到設定的google calendar的event內容了

接下來會開始花幾天的時間把google calendar跟Notion API進行串接,這邊就陸續紀錄串接的過程。


上一篇
Day 19 Google Calendar API in Go
下一篇
Day 21 Notion API & Google Calendar API Integration
系列文
行事曆不再NG:Notion API&Google Calendar跨平台整合發想30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言